Either a heatsoaked starter or bad ground cables normally. Over time the ground cables corrode internally and increase the resistance, making it seem like you have a weak battery. Heat makes the problem worse. Next time its hot, take a set of nice thick jumper cables and attach your negative terminal to your frame. Don't attach the positive, all you're trying to do is temporarily "replace" your ground cable with a fresh cable. If this makes it go away, look into replacing all your grounds.